"""

这个文件是入口文件


项目配置：
1、数据库mysql配置
2、redis
3、session
4、csrf防护
5、日志配置
6、数据库迁移
"""
import logging
from flask import session
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import create_app, db, models   # ！！！！！！！！！！！一定导入models

# 创建app对象
from info.models import User

app = create_app("develop")  # 需求：创建app的时候，可以设定参数来执行当前的配置是开发模式还是生产(线上)模式:
# 传"develop"就是指定加载开发模式的配置信息
# 传"product"就是指定加载生产(线上)模式的配置信息

# 创建manager对象
manager = Manager(app)
# 创建Migrate对象
Migrate(app, db)
# 添加db命令，来做数据库迁移工作
manager.add_command("db", MigrateCommand)


@manager.option("-n", dest="name")
@manager.option("-p", dest="password")
def createsuperuser(name, password):

    if not all([name ,password]):
        print("参数不全")
        return

    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
        print("创建成功")
        return
    except Exception as e:
        print("创建失败： %s" % e)
        db.session.rollback()


if __name__ == "__main__":
    manager.run()